#ifndef DSPSIMULATOR_MVKH_H
#define DSPSIMULATOR_MVKH_H

#include "dspSimulator/targetMachine/dspInstruction.h"

class MVKH : public DspInstruction {
public:
    explicit MVKH(u64 address = 0, u64 baseCycle = 0) :
            DspInstruction("MVKH", address, baseCycle, 0) {}

    MVKH(const MVKH &) = default;

    ~MVKH() override = default;

    void generateIR(std::shared_ptr<IRGenerator> irGenerator, llvm::Function *function, RegCopy &regCopy) override;

    void generateIRInS(std::shared_ptr<IRGenerator> irGenerator, llvm::Function *function, RegCopy &regCopy);

    std::shared_ptr<Instruction> decode(std::shared_ptr<InstInfo> instInfo, u64 baseCycle) override;

    std::string toString() override;
};

#endif //DSPSIMULATOR_MVKH_H
